/**
 *   作者：洪俊勇
 *   创建时间：2017/4/13.
 *   版本：1.0.0.0
 *   功能：群聊
 *   历史：
 *      1、
 *      2、
 */
// (function($, doc) {
//     var MIN_SOUND_TIME = 800;
//     $.init({
//         gestureConfig: {
//             tap: true, //默认为true
//             doubletap: true, //默认为false
//             longtap: true, //默认为false
//             swipe: true, //默认为true
//             drag: true, //默认为true
//             hold: true, //默认为false，不监听
//             release: true //默认为false，不监听
//         }
//     });
//     template.config('escape', false);
//     //$.plusReady=function(fn){fn();};
//     $.plusReady(function() {
//         plus.webview.currentWebview().setStyle({
//             softinputMode: "adjustResize"
//         });
//         var showKeyboard = function() {
//             if ($.os.ios) {
//                 var webView = plus.webview.currentWebview().nativeInstanceObject();
//                 webView.plusCallMethod({
//                     "setKeyboardDisplayRequiresUserAction": false
//                 });
//             } else {
//                 var Context = plus.android.importClass("android.content.Context");
//                 var InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");
//                 var main = plus.android.runtimeMainActivity();
//                 var imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);
//                 imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
//                 //var view = ((ViewGroup)main.findViewById(android.R.id.content)).getChildAt(0);
//                 imm.showSoftInput(main.getWindow().getDecorView(), InputMethodManager.SHOW_IMPLICIT);
//             }
//         };
//         var record = [{
//             sender: 'zs',
//             type: 'text',
//             content: 'Hi，我是 MUI 小管家！'
//         }];
//         var ui = {
//             body: doc.querySelector('body'),
//             footer: doc.querySelector('footer'),
//             footerRight: doc.querySelector('.footer-right'),
//
// //                    footerLeft: doc.querySelector('.footer-left'),// 调用照相机、相册
//
//             chatFace: doc.querySelector('#chatFace'),//表情
//             chatAdd: doc.querySelector('#chatAdd'),//add按钮
//
//             btnMsgType: doc.querySelector('#msg-type'),
//             boxMsgText: doc.querySelector('#msg-text'),
//             boxMsgSound: doc.querySelector('#msg-sound'),
//             btnMsgImage: doc.querySelector('#msg-image'),
//             areaMsgList: doc.querySelector('#msg-list'),
//             boxSoundAlert: doc.querySelector('#sound-alert'),
//             h: doc.querySelector('#h'),
//             content: doc.querySelector('.mui-content')
//         };
//         ui.h.style.width = ui.boxMsgText.offsetWidth + 'px';
//         //alert(ui.boxMsgText.offsetWidth );
//         var footerPadding = ui.footer.offsetHeight - ui.boxMsgText.offsetHeight;
//         var msgItemTap = function(msgItem, event) {
//             var msgType = msgItem.getAttribute('msg-type');
//             var msgContent = msgItem.getAttribute('msg-content')
//             if (msgType == 'sound') {
//                 player = plus.audio.createPlayer(msgContent);
//                 var playState = msgItem.querySelector('.play-state');
//                 playState.innerText = '正在播放...';
//                 player.play(function() {
//                     playState.innerText = '点击播放';
//                 }, function(e) {
//                     playState.innerText = '点击播放';
//                 });
//             }
//         };
//         var imageViewer = new $.ImageViewer('.msg-content-image', {
//             dbl: false
//         });
//         var bindMsgList = function() {
//             //绑定数据:
//             /*tp.bind({
//              template: 'msg-template',
//              element: 'msg-list',
//              model: record
//              });*/
//             ui.areaMsgList.innerHTML = template('msg-template', {
//                 "record": record
//             });
//             var msgItems = ui.areaMsgList.querySelectorAll('.msg-item');
//             [].forEach.call(msgItems, function(item, index) {
//                 item.addEventListener('tap', function(event) {
//                     msgItemTap(item, event);
//                 }, false);
//             });
//             imageViewer.findAllImage();
//             ui.areaMsgList.scrollTop = ui.areaMsgList.scrollHeight + ui.areaMsgList.offsetHeight;
//         };
//         bindMsgList();
//         window.addEventListener('resize', function() {
//             ui.areaMsgList.scrollTop = ui.areaMsgList.scrollHeight + ui.areaMsgList.offsetHeight;
//         }, false);
//         var send = function(msg) {
//             record.push(msg);
//             bindMsgList();
//             // toRobot(msg.content);
//         };
//         // 图灵机器人
//         // var toRobot = function(info) {
//         //     var apiUrl = 'http://www.tuling123.com/openapi/api';
//         //     $.getJSON(apiUrl, {
//         //         "key": 'acfbca724ea1b5db96d2eef88ce677dc',
//         //         "info": info,
//         //         "userid": plus.device.uuid
//         //     }, function(data) {
//         //         //alert(JSON.stringify(data));
//         //         record.push({
//         //             sender: 'zs',
//         //             type: 'text',
//         //             content: data.text
//         //         });
//         //         bindMsgList();
//         //     });
//         // };
//
//         function msgTextFocus() {
//             ui.boxMsgText.focus();
//             setTimeout(function() {
//                 ui.boxMsgText.focus();
//             }, 150);
//         }
//         //解决长按“发送”按钮，导致键盘关闭的问题；
//         ui.footerRight.addEventListener('touchstart', function(event) {
//             if (ui.btnMsgType.classList.contains('mui-icon-paperplane')) {
//                 msgTextFocus();
//                 event.preventDefault();
//             }
//         });
//         //解决长按“发送”按钮，导致键盘关闭的问题；
//         ui.footerRight.addEventListener('touchmove', function(event) {
//             if (ui.btnMsgType.classList.contains('mui-icon-paperplane')) {
//                 msgTextFocus();
//                 event.preventDefault();
//             }
//         });
//         //					ui.footerRight.addEventListener('touchcancel', function(event) {
//         //						if (ui.btnMsgType.classList.contains('mui-icon-paperplane')) {
//         //							msgTextFocus();
//         //							event.preventDefault();
//         //						}
//         //					});
//         //					ui.footerRight.addEventListener('touchend', function(event) {
//         //						if (ui.btnMsgType.classList.contains('mui-icon-paperplane')) {
//         //							msgTextFocus();
//         //							event.preventDefault();
//         //						}
//         //					});
//         ui.footerRight.addEventListener('release', function(event) {
//             if (ui.btnMsgType.classList.contains('mui-icon-paperplane')) {
//                 //showKeyboard();
//                 ui.boxMsgText.focus();
//                 setTimeout(function() {
//                     ui.boxMsgText.focus();
//                 }, 150);
//                 //							event.detail.gesture.preventDefault();
//                 send({
//                     sender: 'self',
//                     type: 'text',
//                     content: ui.boxMsgText.value.replace(new RegExp('\n', 'gm'), '<br/>')
//                 });
//                 ui.boxMsgText.value = '';
//                 $.trigger(ui.boxMsgText, 'input', null);
//             } else if (ui.btnMsgType.classList.contains('mui-icon-mic')) {
//                 ui.btnMsgType.classList.add('mui-icon-compose');
//                 ui.btnMsgType.classList.remove('mui-icon-mic');
//                 ui.boxMsgText.style.display = 'none';
//                 ui.boxMsgSound.style.display = 'block';
//                 ui.boxMsgText.blur();
//                 document.body.focus();
//             } else if (ui.btnMsgType.classList.contains('mui-icon-compose')) {
//                 ui.btnMsgType.classList.add('mui-icon-mic');
//                 ui.btnMsgType.classList.remove('mui-icon-compose');
//                 ui.boxMsgSound.style.display = 'none';
//                 ui.boxMsgText.style.display = 'block';
//                 //--
//                 //showKeyboard();
//                 ui.boxMsgText.focus();
//                 setTimeout(function() {
//                     ui.boxMsgText.focus();
//                 }, 150);
//             }
//         }, false);
// //                ui.footerLeft.addEventListener('tap', function(event) {
// //                    var btnArray = [{
// //                        title: "拍照"
// //                    }, {
// //                        title: "从相册选择"
// //                    }];
// //                    plus.nativeUI.actionSheet({
// //                        title: "选择照片",
// //                        cancel: "取消",
// //                        buttons: btnArray
// //                    }, function(e) {
// //                        var index = e.index;
// //                        switch (index) {
// //                            case 0:
// //                                break;
// //                            case 1:
// //                                var cmr = plus.camera.getCamera();
// //                                cmr.captureImage(function(path) {
// //                                    send({
// //                                        sender: 'self',
// //                                        type: 'image',
// //                                        content: "file://" + plus.io.convertLocalFileSystemURL(path)
// //                                    });
// //                                }, function(err) {});
// //                                break;
// //                            case 2:
// //                                plus.gallery.pick(function(path) {
// //                                    send({
// //                                        sender: 'self',
// //                                        type: 'image',
// //                                        content: path
// //                                    });
// //                                }, function(err) {}, null);
// //                                break;
// //                        }
// //                    });
// //                }, false);
//
//
//         ui.chatFace.addEventListener('tap', function(event) {// 表情
// //                    var tagger = function(dom,cla){
// //                            dom.classList.contains(cla)?dom.classList.remove(cla):dom.classList.add(cla);
// //                    }
// //                    tagger(sbtitle,'hide');
//
//             var faceContent = document.getElementById("faceContent");
//             var footer = document.getElementById("footer");
//             var msg_list = document.getElementById("msg-list");
//             var chat_group = document.getElementById("chat_group");
//
//             var toggle = function (id) {
//                 if(id.style.display == 'block'){
//                     id.style.display = 'none';
//                     chat_group.style.display = 'block';
//
//                     footer.style.bottom = "0";
//                     msg_list.style.height = "100%";
//                 }else{
//                     id.style.display = 'block';
//                     chat_group.style.display = 'none';
//
//                     footer.style.bottom = "30%";
//                     msg_list.style.height = "70%";
//                 }
//             }
//             toggle(faceContent);
//
//
//
//         },false);
//
//         ui.chatAdd.addEventListener('tap', function(event) {// add按钮
//
//             var faceContent = document.getElementById("faceContent");
//             var footer = document.getElementById("footer");
//             var msg_list = document.getElementById("msg-list");
//             var chat_group = document.getElementById("chat_group");
//             var toggle = function (id) {
//                 if(id.style.display == 'block'){
//                     id.style.display = 'none';
//                     faceContent.style.display = 'block';
//
//                     footer.style.bottom = "0";
//                     msg_list.style.height = "100%";
//                 }else{
//                     id.style.display = 'block';
//                     faceContent.style.display = 'none';
//
//                     footer.style.bottom = "30%";
//                     msg_list.style.height = "70%";
//                 }
//             }
//             toggle(chat_group);
//
//         },false);
//
//
//         var setSoundAlertVisable=function(show){
//             if(show){
//                 ui.boxSoundAlert.style.display = 'block';
//                 ui.boxSoundAlert.style.opacity = 1;
//             }else{
//                 ui.boxSoundAlert.style.opacity = 0;
//                 //fadeOut 完成再真正隐藏
//                 setTimeout(function(){
//                     ui.boxSoundAlert.style.display = 'none';
//                 },200);
//             }
//         };
//         var recordCancel = false;
//         var recorder = null;
//         var audio_tips = document.getElementById("audio_tips");
//         var startTimestamp = null;
//         var stopTimestamp = null;
//         var stopTimer = null;
//         ui.boxMsgSound.addEventListener('hold', function(event) {
//             recordCancel = false;
//             if(stopTimer)clearTimeout(stopTimer);
//             audio_tips.innerHTML = "手指上划，取消发送";
//             ui.boxSoundAlert.classList.remove('rprogress-sigh');
//             setSoundAlertVisable(true);
//             recorder = plus.audio.getRecorder();
//             if (recorder == null) {
//                 plus.nativeUI.toast("不能获取录音对象");
//                 return;
//             }
//             startTimestamp = (new Date()).getTime();
//             recorder.record({
//                 filename: "_doc/audio/"
//             }, function(path) {
//                 if (recordCancel) return;
//                 send({
//                     sender: 'self',
//                     type: 'sound',
//                     content: path
//                 });
//             }, function(e) {
//                 plus.nativeUI.toast("录音时出现异常: " + e.message);
//             });
//         }, false);
//         ui.body.addEventListener('drag', function(event) {
//             //console.log('drag');
//             if (Math.abs(event.detail.deltaY) > 50) {
//                 if (!recordCancel) {
//                     recordCancel = true;
//                     if (!audio_tips.classList.contains("cancel")) {
//                         audio_tips.classList.add("cancel");
//                     }
//                     audio_tips.innerHTML = "松开手指，取消发送";
//                 }
//             } else {
//                 if (recordCancel) {
//                     recordCancel = false;
//                     if (audio_tips.classList.contains("cancel")) {
//                         audio_tips.classList.remove("cancel");
//                     }
//                     audio_tips.innerHTML = "手指上划，取消发送";
//                 }
//             }
//         }, false);
//         ui.boxMsgSound.addEventListener('release', function(event) {
//             //console.log('release');
//             if (audio_tips.classList.contains("cancel")) {
//                 audio_tips.classList.remove("cancel");
//                 audio_tips.innerHTML = "手指上划，取消发送";
//             }
//             stopTimestamp = (new Date()).getTime();
//             if (stopTimestamp - startTimestamp < MIN_SOUND_TIME) {
//                 audio_tips.innerHTML = "录音时间太短";
//                 ui.boxSoundAlert.classList.add('rprogress-sigh');
//                 recordCancel = true;
//                 stopTimer=setTimeout(function(){
//                     setSoundAlertVisable(false);
//                 },800);
//             }else{
//                 setSoundAlertVisable(false);
//             }
//             recorder.stop();
//         }, false);
//         ui.boxMsgSound.addEventListener("touchstart", function(e) {
//             //console.log("start....");
//             e.preventDefault();
//         });
//         ui.boxMsgText.addEventListener('input', function(event) {
//
//
//             ui.btnMsgType.classList[ui.boxMsgText.value == '' ? 'remove' : 'add']('mui-icon-paperplane');
//             ui.btnMsgType.setAttribute("for", ui.boxMsgText.value == '' ? '' : 'msg-text');
//             ui.h.innerText = ui.boxMsgText.value.replace(new RegExp('\n', 'gm'), '\n-') || '-';
//             ui.footer.style.height = (ui.h.offsetHeight + footerPadding) + 'px';
//             ui.content.style.paddingBottom = ui.footer.style.height;
//         });
//         var focus = false;
//         ui.boxMsgText.addEventListener('tap', function(event) {
//             // 点击文本框，隐藏表情
//             var faceContent = document.getElementById("faceContent");
//             var chat_group = document.getElementById("chat_group");
//             var footer = document.getElementById("footer");
//             var msg_list = document.getElementById("msg-list");
//             faceContent.style.height = "0";
//             faceContent.style.bottom = "0";
//             faceContent.style.display = "none";
//             chat_group.style.display = "none";
//             footer.style.bottom = "0";
//             msg_list.style.height = "100%";
//
//
//             ui.boxMsgText.focus();
//             setTimeout(function() {
//                 ui.boxMsgText.focus();
//             }, 0);
//             focus = true;
//             setTimeout(function () {
//                 focus = false;
//             },1000);
//             event.detail.gesture.preventDefault();
//         }, false);
//         //点击消息列表，关闭键盘
//         ui.areaMsgList.addEventListener('click',function (event) {
//             var faceContent = document.getElementById("faceContent");
//             var chat_group = document.getElementById("chat_group");
//             var footer = document.getElementById("footer");
//
//             if(!focus){
//                 ui.boxMsgText.blur();
//
//                 // 隐藏表情、add内容
//                 faceContent.style.display = "none";
//                 chat_group.style.display = "none";
//                 footer.style.bottom = "0";
//             }
//         })
//
//     });
// }(mui, document));





/**
 * 判断输入框是否有值
 * @param e
 */
function content_val(e) {
    var send = document.getElementById("send");
    
    if(document.getElementById("msg-text").value != ""){
        send.innerHTML = "<div class='send_btn' onclick='chat_send();'>发送</div>";
    }else{
        send.innerHTML = "<i id='msg-type' class='mui-icon mui-icon-mic'></i>";
    }
}

/**
 * 点击输入框，隐藏表情、add按钮
 */
function content_click(){
    var faceContent = document.getElementById("faceContent");
    var chat_group = document.getElementById("chat_group");
    var footer = document.getElementById("footer");
    var chat_content = document.getElementById("chat_content");
    faceContent.style.display = "none";
    chat_group.style.display = "none";
    footer.style.bottom = "0";
    chat_content.style.height = "100%";
}


/**
 * 群：表情
 */
function group_face() {
	var footer = document.getElementById("footer");
    var faceContent = document.getElementById("faceContent");
    var chat_group = document.getElementById("chat_group");
    var chat_content = document.getElementById("chat_content");
    
    
    var toggle = function (id) {
        if(id.style.display == 'block'){
            id.style.display = 'none';
            
            chat_group.style.display = 'block';
            
            footer.style.bottom = "0";
            chat_content.style.height = "100%";
        }else{
            id.style.display = 'block';
            chat_group.style.display = 'none';
            
            
            footer.style.bottom = "3.5rem";
            chat_content.style.height = "70%";
        }
    }
    toggle(faceContent);

}


/**
 * 群：发送图片、位置
 */
function group_pic_position(){
	var footer = document.getElementById("footer");
	var faceContent = document.getElementById("faceContent");
	var chat_group = document.getElementById("chat_group");
	var chat_content = document.getElementById("chat_content");
	
	var toggle = function (id) {
        if(id.style.display == 'block'){
            id.style.display = 'none';
            faceContent.style.display = "block";
            
                       
            footer.style.bottom = "0";
            chat_content.style.height = "100%";
        }else{
            id.style.display = 'block';
            faceContent.style.display = "none";

            footer.style.bottom = "17%";
            chat_content.style.height = "83%";
        }
    }
    toggle(chat_group);

}


/**
 * 点击聊天内容，隐藏表情、add按钮
 */
function chat_content(){
	var chat_content = document.getElementById("chat_content");
	var faceContent = document.getElementById("faceContent");
	var chat_group = document.getElementById("chat_group");
	var footer = document.getElementById("footer");
	
	faceContent.style.display = "none";
	chat_group.style.display = "none";
	footer.style.bottom = "0";
	chat_content.style.height = "100%";
}





/**
 * 聊天实时滚动到最底部
 */
function scroll_bottom(){
	var div = document.getElementById('chat_content');
	div.scrollTop = div.scrollHeight;
}

// -------------------------------------------- 环信 -------------------------------------------------------
/**
 * 登录
 */
function userLogin(){
    var username = "junyong";
    var password = "123456";

    saveSessionStorage("username",username);// 保存用户名，在免登录需使用
    hxLogin(username,password, function (data) {

        //缓存token，用于快速登录
        var token = data.access_token;
        WebIM.utils.setCookie('webim_' + hex_sha1(username), token, 1);

        //缓存用户信息
        console.log(data.user);
        WebIM.utils.setCookie('webim_uinfo_' + hex_sha1(username), token, 1);
    });
}

/**
 * 发送消息给指定的用户（单聊）
 */
function chat_send(){
    var chat_message = document.getElementById("chat_message");
    var msg_text = document.getElementById("msg-text");
    var send = document.getElementById("send");

    var to = "oli2";
    sendPrivateText(to,msg_text.value,function (success) {
        var html = '<li class="mySend">'+
                        '<div class="mySend_left">'+
                            '<p class="mySend_name">刘先生</p>'+
                            '<p class="mySend_say">'+WebIM.utils.parseEmoji(msg_text.value)+'</p>'+
                        '</div>'+
                        '<div class="mySend_right">'+
                            '<img src="../../../img/personal/imgSmall.png" alt="" height="40" width="40"/>'+
                        '</div>'+
                    '</li>';

        mui("#chat_message")[0].insertAdjacentHTML("beforeEnd",html);
        scroll_bottom();
        msg_text.value = "";
        msg_text.focus();

        send.innerHTML = "<i id='msg-type' class='mui-icon mui-icon-mic'></i>";
    });
}


/**
 * 处理文本消息
 * @param messages 返回的参数
 */
function handleTextMessage(messages) {
    console.log(messages);

    var html = '<li class="otherSend">'+
                    '<div class="otherSend_right">'+
                        '<img src="../../../img/msg/u12-2.png" alt="" height="40" width="40"/>'+
                    '</div>'+
                    '<div class="otherSend_left" >'+
                        '<p class="otherSend_name">oli</p>'+
                        '<p class="otherSend_say">'+messages.data+'</p>'+
                    '</div>'+
                '</li>';

    mui("#chat_message")[0].insertAdjacentHTML("beforeEnd",html);
    scroll_bottom();
}


/**
 *  加载表情
 * @param {Object} obj
 */
function expression() {
    var keys=[];//定义一个数组用来接受key
    var values=[];//定义一个数组用来接受value

    var obj = WebIM.Emoji.map;
    var expression_html = "";
    document.getElementById("faceContent").innerHTML = "";
    var path = "../web-im/test/res/images/faces/";
    for(var key in obj){
        keys.push(key);
        values.push(obj[key]);//取得value
        expression_html += '<span key="'+key+'" class=""><img src="'+(path+obj[key])+'" onclick="expression_face(this);"></span>';
    }

	mui("#faceContent")[0].insertAdjacentHTML("beforeEnd",expression_html);
}